//
//  NSObject+Regex.h
//  来店易商家
//
//  Created by zhengjianliang on 15/12/15.
//  Copyright © 2015年 又一城. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSObject (Regex)

#pragma mark - 正则验证 - 银行卡

/**
 *  正则验证 - 银行卡
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathBankCard:(NSString *)value;

#pragma mark - 正则验证 - 手机号码

/**
 *  正则验证 - 手机号码
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathMobile:(NSString *)value;

#pragma mark - 正则验证 - 判断首字符是否为字母

/**
 *  正则验证 - 判断首字符是否为字母
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathFirstCharacterLetter:(NSString *)value;

#pragma mark - 正则验证 - 只能输入中文和字母

/**
 *  正则验证 - 只能输入中文和字母
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathChineseOrLetters:(NSString *)value;

#pragma mark - 正则验证 - 验证qq号码

/**
 *  正则验证 - 验证qq号码
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathQQ:(NSString *)value;

#pragma mark - 正则验证 - 是否是正整数

/**
 *  正则验证 - 是否是正整数
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathPositiveInteger:(NSString *)value;

#pragma mark - 正则验证 - 只允许输入字母和数字

/**
 *  正则验证 - 只允许输入字母和数字
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathLettersOrNumbers:(NSString *)value;

#pragma mark - 正则验证 - 只允许输入字母和数字 长度范围最小是1，最大默认是100

/**
 *  正则验证 - 只允许输入字母和数字 长度范围最小是1，最大默认是100
 *
 *  @param value 验证的值
 *  @param from  长度范围开始，最小是1
 *  @param to    长度范围结束，最大默认是100
 *
 *  @return YES or NO
 */
+ (BOOL)isMathLettersOrNumbers:(NSString *)value andFrom:(int)from andTo:(int)to;

#pragma mark - 正则验证 -邮箱

/**
 *  正则验证 - 邮箱
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathEmail:(NSString *)value;

#pragma mark - 正则验证 - 只允许输入中文、字母和数字

/**
 *  正则验证 - 只允许输入中文、字母和数字
 *
 *  @param value 验证的值
 *
 *  @return YES or NO
 */
+ (BOOL)isMathChineseOrLettersAndNumbers:(NSString *)value;

#pragma mark - 正则验证 - 身份证号

/**
 *  身份证校验
 *
 *  @param sPaperId 身份证号字符串
 *
 *  @return 是否校验通过
 */
+ (BOOL)isMathIDCard:(NSString *)sPaperId;

/**
 *  判断是否是URL
 *  @return Yes 是数组 No 不是数组
 */
+ (BOOL)isMathURL:(NSString *)value;


/*
 *第二种方法，利用Emoji表情最终会被编码成Unicode，因此，
 *只要知道Emoji表情的Unicode编码的范围，
 *就可以判断用户是否输入了Emoji表情。
 */
+ (BOOL)stringContainsEmoji:(NSString *)string;

@end
